package com.yyfax.pay.third.model.to.quickpay.xml;

import java.io.Serializable;
import java.util.HashMap;
//import java.util.Map;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;
import com.thoughtworks.xstream.converters.extended.NamedMapConverter;
/**
 * 支付，请求/响应（含回调） 报文
 * @author xiemh
 * @date 2017-04-12 10:54:15
 * @since v1.0.0
 */
@SuppressWarnings("serial")
@XStreamAlias("TxnMsgContent")
public class TxnMsgContent implements Serializable {
	/** 交易状态 */
	private String interactiveStatus;
	/** 特殊交易标志 */
	private String spFlag;
	/** 交易类型 */
	private String txnType;
	/** 商户编号 */
	private String merchantId;
	/** 终端编号 */
	private String terminalId;
	/** 外部跟踪编号 */
	private String externalRefNumber;
	/** 商户端交易时间 */
	private String entryTime;
	/** 交易金额 */
	private String amount;
	/** 卡号 */
	private String cardNo; // 首次投资需要
	/** 缩略卡号 */
	private String storableCardNo;
	// /** 过期时间 */ private String expiredDate;
	// /** 信用卡码 */ private String cvv2;
	/** 客户号 */
	private String customerId;
	/** 持卡人姓名 */
	private String cardHolderName;
	/** 证件类型 */
	private String idType;
	/** 持卡人证件号 */
	private String cardHolderId;
	/** tr3回调地址 */
	private String tr3Url;
	/** 手机号码 */
	private String phone;
	// 以下参数放到extMap
	// private String validCode; 手机验证码
	// private String savePciFlag; 是否保存鉴权信息标志
	// private String token; 手机验证码令牌
	// private String payBatch; 快捷支付批次
	// private String phone; 手机号

	/*** 以下为返回报文参数 */
	private String transTime;
	private String refNumber;
	private String responseCode;
	private String responseTextMessage;
	private String cardOrg;
	private String issuer;
	private String authorizationCode;
	private String txnStatus;
	private String voidFlag;

	@XStreamAlias("extMap")
	@XStreamConverter(value = NamedMapConverter.class, strings = { "extDate", "key", "value" }, types = { String.class, String.class })
	private HashMap<String, String> extMap;

	/*** 以下为异步回调请求参数 */
	private String signature;

	public String getInteractiveStatus() {
		return interactiveStatus;
	}

	public void setInteractiveStatus(String interactiveStatus) {
		this.interactiveStatus = interactiveStatus;
	}

	public String getSpFlag() {
		return spFlag;
	}

	public void setSpFlag(String spFlag) {
		this.spFlag = spFlag;
	}

	public String getTxnType() {
		return txnType;
	}

	public void setTxnType(String txnType) {
		this.txnType = txnType;
	}

	public String getMerchantId() {
		return merchantId;
	}

	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	public String getTerminalId() {
		return terminalId;
	}

	public void setTerminalId(String terminalId) {
		this.terminalId = terminalId;
	}

	public String getExternalRefNumber() {
		return externalRefNumber;
	}

	public void setExternalRefNumber(String externalRefNumber) {
		this.externalRefNumber = externalRefNumber;
	}

	public String getEntryTime() {
		return entryTime;
	}

	public void setEntryTime(String entryTime) {
		this.entryTime = entryTime;
	}

	public String getAmount() {
		return amount;
	}

	public void setAmount(String amount) {
		this.amount = amount;
	}

	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	public String getStorableCardNo() {
		return storableCardNo;
	}

	public void setStorableCardNo(String storableCardNo) {
		this.storableCardNo = storableCardNo;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getCardHolderName() {
		return cardHolderName;
	}

	public void setCardHolderName(String cardHolderName) {
		this.cardHolderName = cardHolderName;
	}

	public String getIdType() {
		return idType;
	}

	public void setIdType(String idType) {
		this.idType = idType;
	}

	public String getCardHolderId() {
		return cardHolderId;
	}

	public void setCardHolderId(String cardHolderId) {
		this.cardHolderId = cardHolderId;
	}

	public String getTr3Url() {
		return tr3Url;
	}

	public void setTr3Url(String tr3Url) {
		this.tr3Url = tr3Url;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public HashMap<String, String> getExtMap() {
		return extMap;
	}

	public void setExtMap(HashMap<String, String> extMap) {
		this.extMap = extMap;
	}

	public String getTransTime() {
		return transTime;
	}

	public void setTransTime(String transTime) {
		this.transTime = transTime;
	}

	public String getRefNumber() {
		return refNumber;
	}

	public void setRefNumber(String refNumber) {
		this.refNumber = refNumber;
	}

	public String getResponseCode() {
		return responseCode;
	}

	public void setResponseCode(String responseCode) {
		this.responseCode = responseCode;
	}

	public String getResponseTextMessage() {
		return responseTextMessage;
	}

	public void setResponseTextMessage(String responseTextMessage) {
		this.responseTextMessage = responseTextMessage;
	}

	public String getCardOrg() {
		return cardOrg;
	}

	public void setCardOrg(String cardOrg) {
		this.cardOrg = cardOrg;
	}

	public String getIssuer() {
		return issuer;
	}

	public void setIssuer(String issuer) {
		this.issuer = issuer;
	}

	public String getAuthorizationCode() {
		return authorizationCode;
	}

	public void setAuthorizationCode(String authorizationCode) {
		this.authorizationCode = authorizationCode;
	}

	public String getTxnStatus() {
		return txnStatus;
	}

	public void setTxnStatus(String txnStatus) {
		this.txnStatus = txnStatus;
	}

	public String getVoidFlag() {
		return voidFlag;
	}

	public void setVoidFlag(String voidFlag) {
		this.voidFlag = voidFlag;
	}

	public String getSignature() {
		return signature;
	}

	public void setSignature(String signature) {
		this.signature = signature;
	}

}
